package org.study.module.hadoop;

import org.study.module.common.ModuleCommon;

import java.util.ArrayList;
import java.util.List;

/**
 * MapReduce安装Shell命令
 */
public class MapReduceShell {
    /**
     * MapReduce配置： 单节点安装
     */
    public static List<String> mapredSit() {
        List<String> configs = new ArrayList<>();
        configs.add("cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml");
        configs.add("cat > $HADOOP_HOME/etc/hadoop/mapred-site.xml << EOF");
        ModuleCommon.addConfigHead(configs);
        ModuleCommon.addProperty("mapreduce.framework.name","yarn",configs);
        ModuleCommon.addConfigEnd(configs);
        configs.add("EOF");
        return configs;
    }

    /**
     * MapReduce配置： 多节点安装
     * @param masterHost 主节点地址：
     * JobHistory界面：
     */
    public static List<String> mapredSitMulti(String masterHost) {
        List<String> configs = new ArrayList<>();
        configs.add("cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml");
        configs.add("cat > $HADOOP_HOME/etc/hadoop/mapred-site.xml << EOF");
        ModuleCommon.addConfigHead(configs);
        ModuleCommon.addProperty("mapreduce.framework.name","yarn",configs);
        ModuleCommon.addProperty("mapreduce.jobhistory.address",masterHost+":10020",configs);
        ModuleCommon.addProperty("mapreduce.jobhistory.webapp.address",masterHost+":19888",configs);
        ModuleCommon.addConfigEnd(configs);
        configs.add("EOF");
        return configs;
    }
}
